iT邦幫忙

2025 iThome 鐵人賽

DAY 4
0
Software Development

30天收斂後端開發心法系列 第 4

30天收斂後端開發心法 - (4) Service Provider

  • 分享至 

  • xImage
  •  

在 Laravel 的請求生命週期中,有一個很重要的流程是設定 Service Provider ,現在這個流程你知我知獨眼龍也知,但講了這麼久到底什麼是 Service Provider 呢,讓我們來看看官方文件怎麼說,

Service providers are the central place of all Laravel application bootstrapping.

再說白一點,我們在開發時所用到的那些便利的特性包含服務容器綁定、事件監聽器、中介層,甚至路由。都是在這裡設定並引入的。

當然除了上述這些預設的功能外,我們也可以客製自己的 Service Provider ,譬如來綁定某個 interface 的實例,可以在開發上更為便利

首先可以透過 Artisan command line 來建立一個 Service Provider

php artisan make:provider RiakServiceProvider

再來利用透過建立的檔案中 register function 裡去設定欲實例化的 interface,

<?php

namespace App\Providers;

use Riak\Connection;
use Illuminate\Support\ServiceProvider;

class RiakServiceProvider extends ServiceProvider
{
    /**
     * 在容器中註冊綁定。
     *
     * @return void
     */
    public function register()
    {
        $this->app->singleton(Connection::class, function ($app) {
            return new Connection(config('riak'));
        });
    }
}

接著要在 config/app.php 此設定檔中註冊。

'providers' => [
  App\Providers\AppServiceProvider::class,
],

這樣子下次在透過 Connection::class 進行依賴注入,就能自動解析裡面內容。


上一篇
30天收斂後端開發心法 - (3) Route 與 Middleware
下一篇
30天收斂後端開發心法 - (5) Queue 是什麼?Job 又是什麼?
系列文
30天收斂後端開發心法30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言